package cn.ainit.cw.cwcost;

import java.util.List;

import cn.ainit.common.ReturnObject;


public interface CwCostDao {
	/***
	 * 保存成本单，返回该对象
	 * @param finCost
	 * @return
	 * @throws Exception
	 */
	boolean saveFinCost(CwCosts finCost) throws Exception;
	/**
	 * 修改的前提  根据ID得到这个修改的实体
	 * @param costId
	 * @return
	 * @throws Exception
	 */
	CwCosts toUpdateCost(String costId) throws Exception;
	/**
	 * 执行sql的方法
	 * @param sql
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-1-21 下午05:12:18
	 */
	boolean updApply(String sql) throws Exception;
	/**
	 * 修改成本录入单
	 * @param finCosts
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-1-22 下午03:04:22
	 */
	boolean updateCost(CwCosts finCosts) throws Exception;
	/**
	 * 审核时执行的存储过程
	 * @param costId
	 * @param costType
	 * @param djCode
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-1-22 下午05:25:54
	 */
	boolean execFinCost(String isbnId,String costType,String djCode) throws Exception;
	/**
	 * 执行sql的方法  返回String类型
	 * @param sql
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-2-12 下午03:14:01
	 */
	String varFinCost(String sql) throws Exception;
	/**
	 * 执行sql的方法  返回Int类型
	 * @param sql
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-2-14 下午03:46:39
	 */
	int execFinCostInt(String sql) throws Exception;
	/**
	 * 执行存储过程，生成费用单 (暂时不用了)
	 * @param costId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-6-3 下午05:10:14
	 */
	String newFY(String costId,String manId) throws Exception;
	
//	int execPayFyInt(String sql) throws Exception;
	/**
	 * 执行存储过程，成本单生成付款单
	 * @param payId
	 * @return
	 * @throws Exception
	 * @author payId
	 * @date : 2014-6-3 下午05:10:14
	 */
	ReturnObject newPay(String costId,String manId) throws Exception;
	/**
	 * 执行存储过程，报销费用生成付款单(预支单)
	 * @param payId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-6-3 下午05:10:14
	 */
	ReturnObject bxfyNewPay(String costId,String manId) throws Exception;
	/**
	 * 执行存储过程，报销费用生成付款单(冲账单)
	 * @param payId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-6-3 下午05:10:14
	 */
	ReturnObject bxfyNewCZ(String costId,String manId) throws Exception;
	/**
	 * 执行存储过程，报销费用生成借款还款单 
	 * @param payId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-6-3 下午05:10:14
	 */
	ReturnObject bxfyNewJKHK(String costId,String manId) throws Exception;
	/**
	 * 执行存储过程，生成预付单
	 * @param costId
	 * @param manId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-6-11 下午02:16:46
	 */
	ReturnObject newYF(String costId,String manId) throws Exception;
	/**
	 * 执行存储过程，生成还款单
	 * @param costId
	 * @param manId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-6-11 下午02:16:46
	 */
	ReturnObject newHK(String costId,String manId) throws Exception; 
	/**
	 * 执行存储过程，结算单生成开票单
	 * @param costId
	 * @param manId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-11-29 下午02:05:46
	 */
	ReturnObject jsNewKPFunc(String jsId,String manId) throws Exception; 
	 /**
	 * 执行sql返回List
	 * @param sql
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-4-16 下午02:19:22
	 */
	List execSql(String sql) throws Exception;
	
	
	/**
	 *  财务管理确认摊销界面的确认摊销的功能
	 * @param costIds
	 * @return
	 * @throws Exception
	 * @author chenfeifei
	 * @version 创建时间：2015-2-6 上午09:00:30
	 */
	Integer qrtx(List costIds) throws Exception;
	/**
	 * 执行存储过程，开票单生成客户收款单
	 * @param costId
	 * @param manId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-11-29 下午02:05:46
	 */
	ReturnObject kpNewSKFunc(String kpId,String manId) throws Exception; 
	
}
